<?php
/**
 * Form_Password
 *
 * класс Form_Password позволяет работать с <input type="password"
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 2.1
 */
class Form_Password extends Form_Element
{
  //protected $_initialValue = ''; // начальное значение
  protected $_maxlength = 255; //максимальное число вводимых символов
  protected $_size; //размер элемента ввода


  function __construct(array $arrSettings = array(), $fieldName = null, $showInConstruct = false) {
    parent::__construct($arrSettings, $fieldName);
    if ($showInConstruct)
      $this->show();
  }
	/**
	 * Метод устанавливает свойство
	 *
	 * @param string $settingName
	 * @param mixed $settingValue
	 * @param string $additionalAllowedSettings
	 */
	public function setSetting($settingName, $settingValue, $additionalAllowedSettings = null) {
    switch ($settingName) {
    	case 'maxlength':
    		$this->setMaxLength($settingValue);
    		break;
    	case 'size':
    		$this->setSize($settingValue);
    		break;
    	default:
    	  parent::setSetting($settingName, $settingValue, '"maxlength", "size"');
			  break;
    }
  }
  /**
   * задет максимальное число вводимых символов
   *
   * @param integer $maxlength
   */
  public function setMaxLength($maxlength) {
    $this->_maxlength = $maxlength;
  }
  /**
   * задет размер элемента ввода
   *
   * @param integer $size
   */
  public function setSize($size) {
    $this->_size = $size;
  }
  /**
   * Выводит элемент
   *
   */
  public function show() {
  	$this->checkForErrors();
  	echo '<input type="password"';
  	$this->showElementAttributes();
  	if (isset($this->_maxlength)) echo ' maxlength="' . $this->_maxlength . '"';
  	if (isset($this->_size)) echo ' size="' . $this->_size . '"';

  	echo ' />';
  	$this->showAfterElementMessage();
  }
}
?>